The 36 hottest numbers, plus 0 (the S&P) and 00 (the median stock). Where does the ball land?
Swing of an equal-weight basket (annualised volatility) as stocks are added. Where the line flattens, the remaining swing is what every stock shares.
Files are read in your browser and never uploaded. Prices use today's index members, so earlier periods leave out stocks that have since left the index, and stocks without full history in the chosen period are skipped.
The built-in prices already come with market caps (Yahoo, October 2026). To refresh them later, run this next to sp500_prices.json, then tap Load market caps in the Data tab.
This page already includes a monthly market-cap history, so older periods are weighted by each company's size back then. To rebuild or extend it, this combines Yahoo's share-count history with unadjusted prices. It retries failures and, when you run it again, only fetches stocks missing from an existing sp500_caps_history.json.
Adds each company's icon to the tooltips and lists, and floats it above the tallest stacks. It finds each company's website on Yahoo Finance and fetches its icon from Google's favicon service. Then tap Load logos in the Data tab.
The reference bar is calculated from the stocks by default. This downloads SPY (dividends included, so it matches your prices) and the S&P 500 index itself. Then tap Load S&P 500 file in the Data tab.